package ch10.test;

import java.sql.Date;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

//数组中输入单词，忽略大小写并排序输出
public class HomeWork7 {

	public static void main(String[] args) {

		if (args == null || args.length == 0) {// 判断是否从控制台输入参数：
			//
			System.out.println("没有从控制台输入参数！");
			System.out.println("请输入一组单词，以逗号分隔:");
			Scanner scanner = new Scanner(System.in);
			String input = scanner.nextLine();
			args = input.split(",");
		}
		// 7、从控制台输入若干个单词（输入回车结束）放入集合中，将这些单词排序后（忽略大小写）打印出来。 [选做题]
		// String 类, - 排序规则 hello help ： apple pear
		// compareToIgnoreCase比较方法
		// 冒泡算法
		
		List<String> list = Arrays.asList(args);
		LinkedList<String> linkedList = new LinkedList<String>(list);
		
		bubbleSortDesc(linkedList);
		

		printStringArray(args);
		bubbleSortDesc(args);
		printStringArray(args);
	}

	private static void printStringArray(String[] array) {
		for (String s : array) {
			System.out.print(s + "\t");
		}
		System.out.println();
	}

	public static void bubbleSortDesc(LinkedList<String> data) {
		if (data == null) {
			return;
		}
		for (int i = 0; i < data.size(); i++) {
			for (int k = 0; k < data.size() - 1 - i; k++) {
				String tmp = data.get(k);
				if (data.get(k).compareToIgnoreCase(data.get(k + 1)) > 0) {// 升序和降序控制，小于号是降序排序
					data.set(k, data.get(k + 1));
					data.set(k + 1, tmp);
				}
			}
		}
	}

	public static void bubbleSortDesc(String[] data) {
		if (data == null) {
			return;
		}
		for (int i = 0; i < data.length; i++) {
			for (int k = 0; k < data.length - 1 - i; k++) {
				String tmp = data[k];
				if (data[k].compareToIgnoreCase(data[k + 1]) > 0) {// 升序和降序控制，小于号是降序排序
					data[k] = data[k + 1];
					data[k + 1] = tmp;
				}
			}
		}
	}

}
